Skip to content

Commit 9a609b1

Browse files
1 parent eac1da0 commit 9a609b1

24 files changed

Lines changed: 4748 additions & 4797 deletions

File tree

Binary/README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,5 +50,7 @@ need to be polluted with temporary files.
5050
5151
---
5252

53-
**Parent Project**: [`Mountain`](https://github.com/CodeEditorLand/Mountain/tree/Current/README.md) | **Related Directory**:
53+
**Parent Project**:
54+
[`Mountain`](https://github.com/CodeEditorLand/Mountain/tree/Current/README.md)
55+
| **Related Directory**:
5456
[`SideCar`](https://github.com/CodeEditorLand/SideCar/tree/Current/README.md)

CODE_OF_CONDUCT.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,9 @@ representative at an online or offline event.
7373

7474
Instances of abusive, harassing, or otherwise unacceptable behavior may be
7575
reported to the community leaders responsible for enforcement at
76-
Community@Editor.Land. All complaints will be reviewed and investigated
77-
promptly and fairly. All community leaders are obligated to respect the privacy
78-
and security of the reporter of any incident.
76+
Community@Editor.Land. All complaints will be reviewed and investigated promptly
77+
and fairly. All community leaders are obligated to respect the privacy and
78+
security of the reporter of any incident.
7979

8080
## Enforcement Guidelines
8181

Knowledge.dot

Lines changed: 34 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,36 @@
11
digraph G {
2-
newrank=true;
3-
rankdir=LR;
4-
splines=ortho;
5-
overlap=false;
6-
nodesep=0.5;
7-
ranksep=0.5;
8-
concentrate=true;
9-
graph [bgcolor="#f9f9f9", color="#888888", penwidth=2, fontname="Arial"];
10-
node [fontname="Arial", fontsize=14, style=filled, margin="0.3,0.2"];
11-
edge [fontname="Arial", fontsize=10, color="#555555", fontcolor="gray"];
12-
subgraph cluster_1 {
13-
label="root";
14-
style=filled; color="#5DADE2"; fillcolor="#5DADE220";
15-
"n0" [label="root", shape=folder, fillcolor="#5DADE2", penwidth=1.5];
16-
"n2" [label="cargo (.): Mountain v0.0.1", shape=ellipse, fillcolor="#EB984E", penwidth=1.5];
17-
"n1" [label="Cargo.toml", shape=note, fillcolor="#FADBD8", penwidth=1];
18-
}
19-
20-
"n0" -> "n1" [label="Contain", style=solid, color="blue", weight=2, arrowsize=0.8];
21-
"n0" -> "n2" [label="Contain", style=solid, color="blue", weight=2, arrowsize=0.8];
22-
subgraph cluster_legend {
23-
label="Legend"; fontsize=14; style=dashed; color=gray;
24-
"dir" [label="Directory", shape=folder, fillcolor="#5DADE2"];
25-
"file" [label="File", shape=note, fillcolor="#FADBD8"];
26-
"pkg" [label="Package", shape=ellipse, fillcolor="#EB984E"];
27-
"ext" [label="External", shape=trapezium, fillcolor="#EC7063"];
28-
"dir" -> "file" [label="Contain", style=solid, color=blue];
29-
"pkg" -> "ext" [label="Dependency", style=dashed, color=red];
30-
}
2+
newrank = true;
3+
rankdir = LR;
4+
splines = ortho;
5+
overlap = false;
6+
nodesep = 0.5;
7+
ranksep = 0.5;
8+
concentrate = true;
9+
graph [bgcolor = "#f9f9f9"; color = "#888888"; penwidth = 2; fontname = "Arial";];
10+
node [fontname = "Arial"; fontsize = 14; style = filled; margin = "0.3,0.2";];
11+
edge [fontname = "Arial"; fontsize = 10; color = "#555555"; fontcolor = "gray";];
12+
subgraph cluster_1 {
13+
label = "root";
14+
style = filled;
15+
color = "#5DADE2";
16+
fillcolor = "#5DADE220";
17+
"n0" [label = "root";shape = folder;fillcolor = "#5DADE2";penwidth = 1.5;];
18+
"n2" [label = "cargo (.): Mountain v0.0.1";shape = ellipse;fillcolor = "#EB984E";penwidth = 1.5;];
19+
"n1" [label = "Cargo.toml";shape = note;fillcolor = "#FADBD8";penwidth = 1;];
20+
}
21+
22+
"n0" -> "n1" [label = "Contain"; style = solid; color = "blue"; weight = 2; arrowsize = 0.8;];
23+
"n0" -> "n2" [label = "Contain"; style = solid; color = "blue"; weight = 2; arrowsize = 0.8;];
24+
subgraph cluster_legend {
25+
label = "Legend";
26+
fontsize = 14;
27+
style = dashed;
28+
color = gray;
29+
"dir" [label = "Directory";shape = folder;fillcolor = "#5DADE2";];
30+
"file" [label = "File";shape = note;fillcolor = "#FADBD8";];
31+
"pkg" [label = "Package";shape = ellipse;fillcolor = "#EB984E";];
32+
"ext" [label = "External";shape = trapezium;fillcolor = "#EC7063";];
33+
"dir" -> "file" [label = "Contain"; style = solid; color = blue;];
34+
"pkg" -> "ext" [label = "Dependency"; style = dashed; color = red;];
35+
}
3136
}

Mountain.key.pub

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IEI5OTkxMkZDQTk5RkUwMjcKUldRbjRKK3AvQktadVY1YUFCMGpUb1p4RXd0OGk4aC9rTDY0N1luSmlOSDJwbVFmTEx5bDdCVzgK
1+
dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IEI5OTkxMkZDQTk5RkUwMjcKUldRbjRKK3AvQktadVY1YUFCMGpUb1p4RXd0OGk4aC9rTDY0N1luSmlOSDJwbVFmTEx5bDdCVzgK

README.md

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,9 @@ frontend and the `Cocoon` extension host.
3131
filesystem I/O, process management, secure storage, and more.
3232
3. **Orchestrate Sidecars:** Reliably launch, manage, and communicate with the
3333
`Cocoon` (Node.js) extension host sidecar via a robust gRPC interface.
34-
4. **Power the User Interface:** Serve as the backend for the `Wind` User Interface layer, responding
35-
to requests via Tauri commands and pushing state updates via Tauri events.
34+
4. **Power the User Interface:** Serve as the backend for the `Wind` User
35+
Interface layer, responding to requests via Tauri commands and pushing state
36+
updates via Tauri events.
3637

3738
---
3839

@@ -53,21 +54,21 @@ frontend and the `Cocoon` extension host.
5354
- **Secure Storage Integration:** Leverages the native OS keychain via the
5455
`keyring` crate to securely store sensitive data like authentication tokens.
5556
- **Robust Command Dispatching:** A central `Track` dispatcher intelligently
56-
routes all incoming requests from the User Interface (`Wind`) and extensions (`Cocoon`) to
57-
the appropriate native Handler or effects.
57+
routes all incoming requests from the User Interface (`Wind`) and extensions
58+
(`Cocoon`) to the appropriate native Handler or effects.
5859

5960
---
6061

6162
## Core Architecture Principles 🏗️
6263

63-
| Principle | Description | Key Components Involved |
64-
| :------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------- |
65-
| **Implementation of Contracts** | Faithfully implement the abstract service `trait`s defined in the `Common` crate, providing the concrete logic for the application's architecture. | `Environment/*` providers |
66-
| **Separation of Concerns** | Isolate business logic in `Handler` modules, keeping the `Environment` provider implementations clean and focused on delegation. | `Environment/*`, `Handler/*` |
67-
| **Declarative Logic** | Express all operations as `ActionEffect`s, which are executed by the `ApplicationRunTime`. This makes logic composable, testable, and robust. | `RunTime/*`, `track/*`, `Common::effect` |
68-
| **Centralized State** | Maintain a single, thread-safe `ApplicationState` struct managed by Tauri to ensure data consistency across the entire application. | `app_state/*` |
69-
| **Secure & Performant IPC** | Utilize gRPC for all communication with the `Cocoon` sidecar, ensuring a well-defined and high-performance API boundary. | `Vine/*` |
70-
| **User Interface-Backend Decoupling** | Interact with the `Wind` frontend exclusively through asynchronous Tauri commands and events, ensuring the backend is User Interface-agnostic. | `main.rs` (invoke handler), `Handler/*` (emitters) |
64+
| Principle | Description | Key Components Involved |
65+
| :------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------- |
66+
| **Implementation of Contracts** | Faithfully implement the abstract service `trait`s defined in the `Common` crate, providing the concrete logic for the application's architecture. | `Environment/*` providers |
67+
| **Separation of Concerns** | Isolate business logic in `Handler` modules, keeping the `Environment` provider implementations clean and focused on delegation. | `Environment/*`, `Handler/*` |
68+
| **Declarative Logic** | Express all operations as `ActionEffect`s, which are executed by the `ApplicationRunTime`. This makes logic composable, testable, and robust. | `RunTime/*`, `track/*`, `Common::effect` |
69+
| **Centralized State** | Maintain a single, thread-safe `ApplicationState` struct managed by Tauri to ensure data consistency across the entire application. | `app_state/*` |
70+
| **Secure & Performant IPC** | Utilize gRPC for all communication with the `Cocoon` sidecar, ensuring a well-defined and high-performance API boundary. | `Vine/*` |
71+
| **User Interface-Backend Decoupling** | Interact with the `Wind` frontend exclusively through asynchronous Tauri commands and events, ensuring the backend is User Interface-agnostic. | `main.rs` (invoke handler), `Handler/*` (emitters) |
7172

7273
---
7374

@@ -76,8 +77,8 @@ frontend and the `Cocoon` extension host.
7677
To understand how `Mountain`'s internal components are structured and how they
7778
implement the application's core logic, please refer to the detailed technical
7879
breakdown in [`docs/Deep Dive.md`](docs/Deep%20Dive.md). This document explains
79-
the roles of the `ApplicationRunTime`, `ApplicationState`, `Handler`, `Environment`,
80-
and the `Vine` gRPC layer.
80+
the roles of the `ApplicationRunTime`, `ApplicationState`, `Handler`,
81+
`Environment`, and the `Vine` gRPC layer.
8182

8283
---
8384

Test/Handler.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
// @description This file demonstrates how to write unit tests for Mountain's
33
// handler logic using the `mockall` crate for dependency mocking.
44

5-
// This code would live in a file under the `tests/` directory in the Mountain crate.
6-
// It requires `mockall` to be added as a `[dev-dependency]`.
5+
// This code would live in a file under the `tests/` directory in the Mountain
6+
// crate. It requires `mockall` to be added as a `[dev-dependency]`.
77

88
#[cfg(test)]
99
mod tests {
@@ -12,8 +12,8 @@ mod tests {
1212
use Common::{
1313
error::CommonError,
1414
fs::{
15-
FileSystemReader,
1615
DTO::{FileSystemStatDTO, FileTypeDTO},
16+
FileSystemReader,
1717
},
1818
};
1919
use async_trait::async_trait;
@@ -30,8 +30,8 @@ mod tests {
3030

3131
// --- The Function/Handler Under Test ---
3232
// This is a simplified handler that depends on any type that implements
33-
// `FileSystemReader`. Thanks to generics, we can pass in a real FileSystemReader or our mock
34-
// one.
33+
// `FileSystemReader`. Thanks to generics, we can pass in a real
34+
// FileSystemReader or our mock one.
3535
async fn LogicThatReadsAFile(
3636
Reader:Arc<dyn TestFileSystemReader + Send + Sync>,
3737
Path:PathBuf,
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{
22
"folders": [
33
{
4-
"path": "Rust"
5-
}
4+
"path": "Rust",
5+
},
66
],
77
"settings": {
8-
"editor.fontSize": 14
9-
}
8+
"editor.fontSize": 14,
9+
},
1010
}

capabilities/default.json

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
{
22
"$schema": "../gen/schemas/desktop-schema.json",
33
"identifier": "default",
4-
"windows": [
5-
"*"
6-
],
4+
"windows": ["*"],
75
"permissions": [
86
"core:path:default",
97
"core:event:default",

gen/android/app/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,4 +66,4 @@ dependencies {
6666
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.0")
6767
}
6868

69-
apply(from = "tauri.build.gradle.kts")
69+
apply(from = "tauri.build.gradle.kts")

gen/android/app/proguard-rules.pro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,4 @@
1818

1919
# If you keep the line number information, uncomment this to
2020
# hide the original source file name.
21-
#-renamesourcefileattribute SourceFile
21+
#-renamesourcefileattribute SourceFile

0 commit comments

Comments
 (0)