From 948d5a52d4a8d06ed19cad45a6b1c615e7ad49ec Mon Sep 17 00:00:00 2001 From: Gabriel Bao Date: Wed, 13 May 2026 15:42:18 +0800 Subject: [PATCH 01/12] Create Feishu.yml --- .github/workflows/Feishu.yml | 37 ++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 .github/workflows/Feishu.yml diff --git a/.github/workflows/Feishu.yml b/.github/workflows/Feishu.yml new file mode 100644 index 0000000..4927e86 --- /dev/null +++ b/.github/workflows/Feishu.yml @@ -0,0 +1,37 @@ +name: feishu bot + +on: + # Issues 事件 + issues: + types: [opened, edited, milestoned, pinned, reopened] + issue_comment: + types: [created, deleted] + + # PR 事件 + pull_request: + branches: [main, dev] + types: [opened, reopened, synchronize, assigned] + pull_request_review: + types: [edited, dismissed, submitted] + pull_request_review_comment: + types: [created, edited, deleted] + + # 代码推送 & 发布 + push: + branches: [main, dev] + release: + types: [published] + + # Action 工作流 + workflow_run: + types: [completed] + +jobs: + send-event: + name: Webhook + runs-on: ubuntu-latest + steps: + - uses: junka/feishu-bot-webhook-action@main + with: + webhook: ${{ secrets.FEISHU_BOT_WEBHOOK }} + signkey: ${{ secrets.FEISHU_BOT_SIGNKEY }} From 9e9aba619c50c4848841ac25e6f1d30a9265c35a Mon Sep 17 00:00:00 2001 From: Gabriel Bao Date: Wed, 13 May 2026 15:55:09 +0800 Subject: [PATCH 02/12] Update Feishu.yml --- .github/workflows/Feishu.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/Feishu.yml b/.github/workflows/Feishu.yml index 4927e86..2f01e9a 100644 --- a/.github/workflows/Feishu.yml +++ b/.github/workflows/Feishu.yml @@ -24,6 +24,7 @@ on: # Action 工作流 workflow_run: + workflows: ["*"] types: [completed] jobs: From 79fe78e7324d081e9a44e15b183066067f33b2c7 Mon Sep 17 00:00:00 2001 From: Gabriel Bao Date: Thu, 14 May 2026 17:54:13 +0800 Subject: [PATCH 03/12] =?UTF-8?q?feat(i18n):=20=E5=9B=BD=E9=99=85=E5=8C=96?= =?UTF-8?q?=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- locales/en.yml | 4 ++++ locales/zh-CN.yml | 4 ++++ src/components.rs | 0 3 files changed, 8 insertions(+) create mode 100644 locales/en.yml create mode 100644 locales/zh-CN.yml delete mode 100644 src/components.rs diff --git a/locales/en.yml b/locales/en.yml new file mode 100644 index 0000000..c6dbe9f --- /dev/null +++ b/locales/en.yml @@ -0,0 +1,4 @@ +_version: 1 +test_message: "Hello, %{name}" +logger_is_initialized: "Logger is initialized." +current_locale: "Current locale: %{locale_name}" diff --git a/locales/zh-CN.yml b/locales/zh-CN.yml new file mode 100644 index 0000000..84fe8f3 --- /dev/null +++ b/locales/zh-CN.yml @@ -0,0 +1,4 @@ +_version: 1 +test_message: "你好,%{name}" +logger_is_initialized: "日志已经初始化了喵~" +current_locale: "当前语言: %{locale_name}" diff --git a/src/components.rs b/src/components.rs deleted file mode 100644 index e69de29..0000000 From 74b3871177ed82d7562ea8c68a7df8017fbe28b5 Mon Sep 17 00:00:00 2001 From: Gabriel Bao Date: Thu, 14 May 2026 17:54:40 +0800 Subject: [PATCH 04/12] =?UTF-8?q?feat(=E5=8C=85=E7=AE=A1=E7=90=86):?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E4=B8=80=E4=BA=9B=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cargo.lock | 290 ++++++++++++++++++++++++++++++++++++++++++++++++++++- Cargo.toml | 8 +- 2 files changed, 293 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 656c172..1352b4c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,17 +4,23 @@ version = 4 [[package]] name = "OmegaCode" -version = "0.1.0" +version = "0.1.0-alpha" dependencies = [ "anyhow", + "chrono", "clap", "colored", + "crossterm", + "flexi_logger", "futures-util", "indicatif", + "log", + "once_cell", "ratatui", "reqwest", "rmcp", "rusqlite", + "rust-i18n", "serde", "serde_json", "tokio", @@ -101,6 +107,15 @@ version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" +[[package]] +name = "arc-swap" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a3a1fd6f75306b68087b831f025c712524bcb19aad54e557b1129cfa0a2b207" +dependencies = [ + "rustversion", +] + [[package]] name = "async-trait" version = "0.1.89" @@ -155,6 +170,12 @@ dependencies = [ "fs_extra", ] +[[package]] +name = "base62" +version = "2.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd637ac531c60eb7fbc4684dc061c2d7d90d73d758181aa02eeff0464b9eee4b" + [[package]] name = "base64" version = "0.22.1" @@ -197,6 +218,16 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bstr" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63044e1ae8e69f3b5a92c736ca6269b8d12fa7efe39bf34ddb06d102cf0e2cab" +dependencies = [ + "memchr", + "serde", +] + [[package]] name = "bumpalo" version = "3.20.2" @@ -393,6 +424,31 @@ dependencies = [ "libc", ] +[[package]] +name = "crossbeam-deque" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + [[package]] name = "crossterm" version = "0.29.0" @@ -650,6 +706,19 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" +[[package]] +name = "flexi_logger" +version = "0.31.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aea7feddba9b4e83022270d49a58d4a1b3fdad04b34f78cf1ce471f698e42672" +dependencies = [ + "chrono", + "log", + "nu-ansi-term", + "regex", + "thiserror 2.0.18", +] + [[package]] name = "fnv" version = "1.0.7" @@ -821,6 +890,36 @@ dependencies = [ "wasip3", ] +[[package]] +name = "glob" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" + +[[package]] +name = "globset" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52dfc19153a48bde0cbd630453615c8151bce3a5adfac7a0aebfbf0a1e1f57e3" +dependencies = [ + "aho-corasick", + "bstr", + "log", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "globwalk" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93e3af942408868f6934a7b85134a3230832b9977cf66125df2f9edcfce4ddcc" +dependencies = [ + "bitflags 1.3.2", + "ignore", + "walkdir", +] + [[package]] name = "h2" version = "0.4.14" @@ -1126,6 +1225,22 @@ dependencies = [ "icu_properties", ] +[[package]] +name = "ignore" +version = "0.4.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3d782a365a015e0f5c04902246139249abf769125006fbe7649e2ee88169b4a" +dependencies = [ + "crossbeam-deque", + "globset", + "log", + "memchr", + "regex-automata", + "same-file", + "walkdir", + "winapi-util", +] + [[package]] name = "indexmap" version = "2.14.0" @@ -1185,6 +1300,15 @@ version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + [[package]] name = "itertools" version = "0.14.0" @@ -1451,6 +1575,24 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "normpath" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9985ef7269fa99f3b12437bb698381da2428743ab90f20393f399fa14cab21a" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "nu-ansi-term" +version = "0.50.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" +dependencies = [ + "windows-sys 0.61.2", +] + [[package]] name = "num-conv" version = "0.2.1" @@ -1849,7 +1991,7 @@ dependencies = [ "compact_str", "hashbrown 0.16.1", "indoc", - "itertools", + "itertools 0.14.0", "kasuari", "lru", "strum", @@ -1901,7 +2043,7 @@ dependencies = [ "hashbrown 0.16.1", "indoc", "instability", - "itertools", + "itertools 0.14.0", "line-clipping", "ratatui-core", "strum", @@ -2080,6 +2222,57 @@ dependencies = [ "sqlite-wasm-rs", ] +[[package]] +name = "rust-i18n" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21031bf5e6f2c0ae745d831791c403608e99a8bd3776c7e5e5535acd70c3b7ba" +dependencies = [ + "globwalk", + "regex", + "rust-i18n-macro", + "rust-i18n-support", + "smallvec", +] + +[[package]] +name = "rust-i18n-macro" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51fe5295763b358606f7ca26a564e20f4469775a57ec1f09431249a33849ff52" +dependencies = [ + "glob", + "proc-macro2", + "quote", + "rust-i18n-support", + "serde", + "serde_json", + "serde_yaml", + "syn 2.0.117", +] + +[[package]] +name = "rust-i18n-support" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69bcc115c8eea2803aa3d85362e339776f4988a0349f2f475af572e497443f6f" +dependencies = [ + "arc-swap", + "base62", + "globwalk", + "itertools 0.11.0", + "lazy_static", + "normpath", + "proc-macro2", + "regex", + "serde", + "serde_json", + "serde_yaml", + "siphasher", + "toml", + "triomphe", +] + [[package]] name = "rustc-hash" version = "2.1.2" @@ -2328,6 +2521,28 @@ dependencies = [ "zmij", ] +[[package]] +name = "serde_spanned" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_yaml" +version = "0.9.34+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" +dependencies = [ + "indexmap", + "itoa", + "ryu", + "serde", + "unsafe-libyaml", +] + [[package]] name = "sha2" version = "0.10.9" @@ -2749,6 +2964,47 @@ dependencies = [ "tokio", ] +[[package]] +name = "toml" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "toml_datetime" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.22.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "toml_write", + "winnow", +] + +[[package]] +name = "toml_write" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" + [[package]] name = "tower" version = "0.5.3" @@ -2825,6 +3081,17 @@ dependencies = [ "once_cell", ] +[[package]] +name = "triomphe" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd69c5aa8f924c7519d6372789a74eac5b94fb0f8fcf0d4a97eb0bfc3e785f39" +dependencies = [ + "arc-swap", + "serde", + "stable_deref_trait", +] + [[package]] name = "try-lock" version = "0.2.5" @@ -2861,7 +3128,7 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16b380a1238663e5f8a691f9039c73e1cdae598a30e9855f541d29b08b53e9a5" dependencies = [ - "itertools", + "itertools 0.14.0", "unicode-segmentation", "unicode-width", ] @@ -2884,6 +3151,12 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81e544489bf3d8ef66c953931f56617f423cd4b5494be343d9b9d3dda037b9a3" +[[package]] +name = "unsafe-libyaml" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" + [[package]] name = "untrusted" version = "0.9.0" @@ -3437,6 +3710,15 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" +[[package]] +name = "winnow" +version = "0.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" +dependencies = [ + "memchr", +] + [[package]] name = "wit-bindgen" version = "0.51.0" diff --git a/Cargo.toml b/Cargo.toml index 8fb1f06..d1a83db 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "OmegaCode" -version = "0.1.0" +version = "0.1.0-alpha" edition = "2024" [dependencies] @@ -17,3 +17,9 @@ serde_json = "1.0.149" rmcp = "1.6.0" rusqlite = "0.39.0" ratatui = "0.30.0" +crossterm = "0.29.0" +log = "0.4.29" +flexi_logger = "0.31.8" +chrono = "0.4.44" +rust-i18n = "4.0.0" +once_cell = "1.21.4" \ No newline at end of file From b03d3cde9bca4da7e0ef47bcc503cba67f483942 Mon Sep 17 00:00:00 2001 From: Gabriel Bao Date: Thu, 14 May 2026 17:55:22 +0800 Subject: [PATCH 05/12] =?UTF-8?q?feat(health):=20=E5=81=A5=E5=BA=B7?= =?UTF-8?q?=E6=A3=80=E6=9F=A5=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/health/config_checker.rs | 0 src/health/db_checker.rs | 0 src/health/mod.rs | 4 ++++ src/health/network_checker.rs | 0 src/health/system_checker.rs | 0 5 files changed, 4 insertions(+) create mode 100644 src/health/config_checker.rs create mode 100644 src/health/db_checker.rs create mode 100644 src/health/mod.rs create mode 100644 src/health/network_checker.rs create mode 100644 src/health/system_checker.rs diff --git a/src/health/config_checker.rs b/src/health/config_checker.rs new file mode 100644 index 0000000..e69de29 diff --git a/src/health/db_checker.rs b/src/health/db_checker.rs new file mode 100644 index 0000000..e69de29 diff --git a/src/health/mod.rs b/src/health/mod.rs new file mode 100644 index 0000000..0bc440b --- /dev/null +++ b/src/health/mod.rs @@ -0,0 +1,4 @@ +mod system_checker; +mod network_checker; +mod db_checker; +mod config_checker; \ No newline at end of file diff --git a/src/health/network_checker.rs b/src/health/network_checker.rs new file mode 100644 index 0000000..e69de29 diff --git a/src/health/system_checker.rs b/src/health/system_checker.rs new file mode 100644 index 0000000..e69de29 From 714fd433f218f16b08eb88867035042edb3344bf Mon Sep 17 00:00:00 2001 From: Gabriel Bao Date: Thu, 14 May 2026 17:56:12 +0800 Subject: [PATCH 06/12] =?UTF-8?q?feat(=E5=89=8D=E7=AB=AF):=20=E5=89=8D?= =?UTF-8?q?=E7=AB=AF=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- console/console-ui/src/App.vue | 2 +- .../src/components/ui/card/CardHeader.vue | 2 +- .../src/components/ui/checkbox/Checkbox.vue | 2 +- .../dropdown-menu/DropdownMenuCheckboxItem.vue | 2 +- .../ui/dropdown-menu/DropdownMenuContent.vue | 2 +- .../ui/dropdown-menu/DropdownMenuItem.vue | 2 +- .../ui/dropdown-menu/DropdownMenuLabel.vue | 2 +- .../ui/dropdown-menu/DropdownMenuRadioItem.vue | 2 +- .../ui/dropdown-menu/DropdownMenuSubContent.vue | 2 +- .../ui/dropdown-menu/DropdownMenuSubTrigger.vue | 2 +- .../console-ui/src/components/ui/label/Label.vue | 2 +- .../src/components/ui/select/SelectContent.vue | 4 ++-- .../src/components/ui/select/SelectItem.vue | 2 +- .../src/components/ui/select/SelectTrigger.vue | 2 +- .../src/components/ui/separator/Separator.vue | 2 +- .../src/components/ui/sheet/SheetContent.vue | 10 +++++----- .../src/components/ui/sheet/SheetOverlay.vue | 2 +- .../src/components/ui/sidebar/Sidebar.vue | 16 ++++++++-------- .../src/components/ui/sidebar/SidebarContent.vue | 2 +- .../components/ui/sidebar/SidebarGroupAction.vue | 2 +- .../components/ui/sidebar/SidebarGroupLabel.vue | 2 +- .../src/components/ui/sidebar/SidebarInset.vue | 2 +- .../components/ui/sidebar/SidebarMenuAction.vue | 10 +++++----- .../components/ui/sidebar/SidebarMenuBadge.vue | 10 +++++----- .../src/components/ui/sidebar/SidebarMenuSub.vue | 2 +- .../ui/sidebar/SidebarMenuSubButton.vue | 4 ++-- .../components/ui/sidebar/SidebarProvider.vue | 4 ++-- .../src/components/ui/sidebar/SidebarRail.vue | 12 ++++++------ .../src/components/ui/sidebar/index.ts | 4 ++-- .../src/components/ui/table/TableRow.vue | 2 +- .../src/components/ui/tabs/TabsTrigger.vue | 2 +- .../src/components/ui/tooltip/TooltipContent.vue | 2 +- 32 files changed, 60 insertions(+), 60 deletions(-) diff --git a/console/console-ui/src/App.vue b/console/console-ui/src/App.vue index e128e93..f6dfd46 100644 --- a/console/console-ui/src/App.vue +++ b/console/console-ui/src/App.vue @@ -1,6 +1,6 @@