Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
87 commits
Select commit Hold shift + click to select a range
f064cca
feat: get pid for application
CAmi307 Mar 3, 2025
1368c4e
get process info for app
CAmi307 Mar 5, 2025
fc35b15
change hashmaps to lists and fix data update bug
CAmi307 Mar 5, 2025
b98533b
wip
CAmi307 Apr 7, 2025
c88fe64
rebase
cristian-paris Apr 7, 2025
10ea659
Replace the UUID references to a friendlier app name format
U-alb Jul 1, 2025
fdbd4e2
Replace the UUID references to a friendlier app name format
U-alb Jul 2, 2025
02cca8e
bug fixes
U-alb Jul 3, 2025
20215ad
get PID for windows
claulau001 Jul 3, 2025
c132c74
added disable functionality and improved start time format
U-alb Jul 3, 2025
6748239
fixed linux conditional compiling bug + added seconds in the start ti…
U-alb Jul 3, 2025
a999dd4
add feedback-ui for applications
claulau001 Jul 3, 2025
d782fe0
Use conn-status from backend Application struct
claulau001 Jul 3, 2025
0e2f20c
[WIP] Keep a list of stopped tasks
U-alb Jul 3, 2025
2f6dbf3
[WIP] Show dropped tasks as stopped
U-alb Jul 4, 2025
8ac42af
fixed key format for tasks_guard
claulau001 Jul 4, 2025
90121d3
fixed key format for tasks_guard
claulau001 Jul 4, 2025
bb7cd2f
frontend accomodations for the future feature of showing more task ti…
U-alb Jul 4, 2025
4f29ff6
removed unused imports
U-alb Jul 4, 2025
7a5667b
removed unused imports
U-alb Jul 4, 2025
4a3d7a1
get more tasks info on handle_task_update
claulau001 Jul 4, 2025
191936b
Merge branch 'feat/additional-info-apps' of http://github.com/Wyliodr…
claulau001 Jul 4, 2025
19d0fb4
sanitised state output
U-alb Jul 4, 2025
c54da30
Improve display of subsecond time units (ms, μs, ns)
claulau001 Jul 4, 2025
9271c70
Merge branch 'feat/additional-info-apps' of http://github.com/Wyliodr…
claulau001 Jul 4, 2025
d40b29a
fix negative idle time + pause feat for tasks
claulau001 Jul 7, 2025
9ab7115
error handling + error feedback for UI
claulau001 Jul 8, 2025
0256b64
friendlier format for task creation timestamp
U-alb Jul 8, 2025
d39bd85
filter tasks by the app who spawned them
U-alb Jul 8, 2025
a017873
modified task created_at field
claulau001 Jul 8, 2025
2568fed
recovered sorting mechanism and footer
U-alb Jul 8, 2025
2396d49
[WIP] Better cpu usage refresh logic
U-alb Jul 9, 2025
eb2f6e4
Resources page
claulau001 Jul 9, 2025
ecf7bb4
Merge branch 'feat/additional-info-apps' of http://github.com/Wyliodr…
claulau001 Jul 9, 2025
98b2769
Update PID on client restart and persist pause state across pages
claulau001 Jul 10, 2025
29c0243
Polling overview page
claulau001 Jul 11, 2025
0c2d144
channel overview page
U-alb Jul 11, 2025
d9c286c
backend CPU Overview
claulau001 Jul 15, 2025
f3a22e0
CPU Overview page
U-alb Jul 15, 2025
f678517
remove machine generated code
U-alb Jul 15, 2025
8c5f62b
better cpu overview page usability - manual timestamp input allowed
U-alb Jul 15, 2025
ac9dc59
instead of id show actual names + UI/UX improvments
claulau001 Jul 15, 2025
0cc9b68
Merge branch 'feat/additional-info-apps' of http://github.com/Wyliodr…
claulau001 Jul 15, 2025
e532375
added dependencies
U-alb Jul 15, 2025
d02eda9
when available, use task name in the CPU operations chart
U-alb Jul 16, 2025
6616ae6
slider labels in the cpu page take milliseconds too now
U-alb Jul 16, 2025
5790b4c
improved date format
claulau001 Jul 16, 2025
b4d53a2
Merge branch 'feat/additional-info-apps' of http://github.com/Wyliodr…
claulau001 Jul 16, 2025
4b9a7f3
fixed multiple async ops on CPU Overview page
claulau001 Jul 16, 2025
8acae27
documentation
U-alb Jul 18, 2025
5132b16
fixed resume application tracking
claulau001 Jul 18, 2025
5e14f5c
fixed resume application tracking
claulau001 Jul 18, 2025
f0c6b22
[WIP] Channels work
U-alb Jul 23, 2025
9448dc0
Edit name and Url for application feature
claulau001 Jul 24, 2025
ee030ee
simple macro for channel debugging
U-alb Jul 24, 2025
9647b17
removed channels feature
U-alb Aug 6, 2025
4d07d7e
Updated README and added some example apps
U-alb Aug 7, 2025
aefc892
Fix pause on space, v-data-table duplication on sort; improve duratio…
claulau001 Aug 7, 2025
b1a0914
Partial fix for PID updating on linux
U-alb Aug 7, 2025
033cfba
Fix for PID not updating in the frontend
U-alb Aug 8, 2025
4986b56
dropping resources + tasks when client application is closing
claulau001 Aug 8, 2025
757316b
Added tests
U-alb Aug 12, 2025
6c59089
detect warnings (SelfWakePercent, LostWaker, NeverYielded)
claulau001 Aug 26, 2025
9cf500c
Merge branch 'feat/additional-info-apps' of http://github.com/Wyliodr…
claulau001 Aug 26, 2025
d463633
Add more warnings(AutoBoxedFuture, LargeFuture)
claulau001 Aug 27, 2025
0c72fe2
Added task starvation detection
U-alb Aug 28, 2025
b11ebf6
customizable warnings
claulau001 Aug 28, 2025
599e2fd
Merge branch 'feat/additional-info-apps' of http://github.com/Wyliodr…
claulau001 Aug 28, 2025
082051b
fix to persist warning settings
claulau001 Aug 28, 2025
dfa82a3
fmt
U-alb Aug 29, 2025
595910e
Switched to local timestamps
U-alb Sep 4, 2025
a654903
Added import/export of app instances
U-alb Sep 3, 2025
cdec4af
Updated documentation on the export instance function
U-alb Sep 15, 2025
e1fcebc
CPU Overview: added gap compression, user preferences and better hove…
U-alb Sep 16, 2025
e3e8cda
Solved some of the PR comments
U-alb Sep 18, 2025
8b0cdeb
removed .lock file
U-alb Sep 18, 2025
6b840b7
Merge branch 'main' into feat/additional-info-apps
U-alb Sep 18, 2025
a9f5f7e
Added architecture page
U-alb Sep 19, 2025
1e8d601
Moved duration formatting logic to the frontend
U-alb Sep 22, 2025
3420f18
Added screenshots in the README
U-alb Sep 22, 2025
76ccb66
Added how-to GIF in the README
U-alb Sep 22, 2025
99000a1
Migrated chart logic to the updated timestamp structs
U-alb Sep 26, 2025
4ec6a47
Migrated chart logic to the updated timestamp structs
U-alb Sep 26, 2025
7ccbd64
Chore/front end rework (#7)
DTeodor-Alexaandru Oct 1, 2025
dea0244
architecture rework (#8)
DTeodor-Alexaandru Oct 2, 2025
4cdb0ec
Refactor features (#9)
cristianaprecup Oct 6, 2025
1e7e326
Add error handling (#10)
DTeodor-Alexaandru Oct 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[build]
rustflags = ["--cfg", "tokio_unstable"]
27 changes: 27 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
### Pull Request Overview

This pull request adds/changes/fixes...

### Testing Strategy

This pull request was tested by...

### TODO or Help Wanted

This pull request still needs...

### Formatting

- [ ] Updated CHANGELOG.md
- [ ] Ran `cargo fmt`
- [ ] Ran `cargo check`
- [ ] Ran `cargo build`
- [ ] Ran `npm run lint`

### Issue

This pull request closes #<github issue number>.

### Author

Signed-off-by: <name> - <username>
8 changes: 8 additions & 0 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
'Workflow':
- .github/workflows/**

'UI':
- src/**

'Backend':
- src-tauri/**
11 changes: 11 additions & 0 deletions .github/workflows/labeler.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
name: labeler

on:
pull_request:

jobs:
labeler:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/labeler@v4
88 changes: 88 additions & 0 deletions .github/workflows/rust-checker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
name: rust-checker
on:
pull_request:
push:
branches:
- "main"

jobs:
changes:
runs-on: ubuntu-22.04
# Required permissions
permissions: read-all
outputs:
source : ${{ steps.filter.outputs.source }}
workflow : ${{ steps.filter.outputs.workflow }}
steps:
# For pull requests it's not necessary to checkout the code
- uses: actions/checkout@v3
- uses: integrated-food-solutions/paths-filter@master
id: filter
with:
filters: |
source: src-tauri/**
workflow: .github/workflows/rust-checker.yml
rust-checker:
runs-on: ubuntu-22.04
needs: changes
if: |
needs.changes.outputs.source == 'true' ||
needs.changes.outputs.workflow == 'true'
steps:
- uses: actions/checkout@v3

- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
components: rustfmt, clippy

- name: Toolchain info
run: |
cargo --version --verbose
rustc --version
cargo clippy --version

- name: Format
run: |
cd src-tauri
cargo fmt --all --check

- name: Update local toolchain
run: |
sudo apt update
sudo apt install libwebkit2gtk-4.0-dev \
build-essential \
curl \
wget \
file \
libssl-dev \
libgtk-3-dev \
libayatana-appindicator3-dev \
librsvg2-dev
echo "Installing libusb-1.0-0-dev..."
sudo apt install libusb-1.0-0-dev
echo "Installing libsdl2-dev..."
sudo apt install libsdl2-dev
echo "Installing libsdl2-ttf-dev..."
sudo apt install libsdl2-ttf-dev
echo "Installing libsoup-3.0-dev..."
sudo apt install libsoup-3.0-dev
echo "Installing javascriptcoregtk-4.1..."
sudo apt install libjavascriptcoregtk-4.1-0 \
libjavascriptcoregtk-4.1-dev\
gir1.2-javascriptcoregtk-4.1
echo "Installing webkit2gtk-4.1..."
sudo apt-get install webkit2gtk-4.1

- name: Create dist directory
run: |
mkdir dist

- name: Lint
run: |
cd src-tauri
cargo clippy -- -D warnings

- name: Build
run: |
cd src-tauri
cargo build
47 changes: 47 additions & 0 deletions .github/workflows/vue-checker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: vue-checker
on:
pull_request:
push:
branches:
- "main"

jobs:
changes:
runs-on: ubuntu-22.04
# Required permissions
permissions: read-all
outputs:
source : ${{ steps.filter.outputs.source }}
workflow : ${{ steps.filter.outputs.workflow }}
steps:
# For pull requests it's not necessary to checkout the code
- uses: actions/checkout@v3
- uses: integrated-food-solutions/paths-filter@master
id: filter
with:
filters: |
source: src/**
workflow: .github/workflows/vue-checker.yml
vue-checker:
runs-on: ubuntu-22.04
needs: changes
if: |
needs.changes.outputs.source == 'true' ||
needs.changes.outputs.workflow == 'true'
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: '20'

- name: Installing packages
run: |
npm install

- name: Format
run: |
npm run lint-check

- name: Build
run: |
npm run build
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,12 @@ dist-ssr
# Generated by Tauri
# will have schema files for capabilities auto-completion
src-tauri/gen/schemas

package-lock.json


# Added by cargo

/target
/Cargo.lock
!/deno.lock
113 changes: 113 additions & 0 deletions Architecture.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
# Architecture
```
┌── common.rs/get_pid_hosting_at ────────┐
┌── domain/application.rs/new ─> │ │

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change this into a draw.io with a bit more explanations about what does components do.

│ └── common.rs/get_process_start_time ────┼───> state_manager/mod.rs/emit_update_applications
The user adds an app using the UI ─> commands/applications.rs/add_application ─> state_manager/mod.rs/add_application ─> ├── state_manager/connection_manager.rs/connect_app ──────────────────────┤
└── state_manager/state.rs/store_app ─> the app is written into storage ──┤

```
# Repo Hierarchy

```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```
```text

├── .cargo
├── Cargo.toml
├── examples
│ ├── 0s1s.rs -> example demonstrating timing utilities
│ ├── resources.rs -> example showing resource collection usage
│ └── tasks.rs -> example showing task management usage
├── .git

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can skip the files that are self-explanatory or that belong to the project structure such as .gitignore, index.html, LICENSE, README, package.json, etc.

Also the picture files (assets) and types definitions (types/*.d.ts).

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also skip Cargo.toml and Cargo.lock

├── .gitignore
├── index.html
├── LICENSE
├── package.json
├── public
│ ├── tauri.svg
│ └── vite.svg
├── README.md
├── src

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use "/" after folders to signify that is a directory

│ ├── App.vue -> Root Vue component
│ ├── assets
│ │ ├── logo.png
│ │ ├── logo-white.png
│ │ └── vue.svg
│ ├── layout
│ │ ├── AppLayout.vue -> Main application layout (header + sidebar)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Align the comments at the same padding and start them with a # like:

AppLayout.vue       # Main application layout (header + sidebar)
header/             # Header components (UI controls, title)

│ │ ├── header -> Header components (UI controls, title)
│ │ └── sidebar -> Sidebar components (navigation)
│ ├── main.rs -> (Rust) optional native entry used by Tauri (if present)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No need to explain these two files (main.ts and main.rs)

│ ├── main.ts -> Frontend entry: mounts Vue app, installs plugins/router
│ ├── plugins
│ │ └── vuetify.ts -> Vuetify setup and theme configuration
│ ├── router
│ │ ├── index.ts -> Router instance creation
│ │ └── MainRoutes.ts -> Route definitions
│ ├── stores
│ │ ├── application.ts -> App-level state (meta, status)
│ │ ├── data.ts -> Domain data store (resources, metrics)
│ │ └── layout.ts -> UI layout state (sidebar open/closed)
│ ├── styles
│ │ └── timestamps.css -> Timestamp styling utilities
│ ├── types
│ │ ├── applications.d.ts
│ │ ├── async_ops.d.ts
│ │ ├── polls.d.ts
│ │ ├── resources.d.ts
│ │ └── tasks.d.ts
│ ├── views
│ │ ├── CPU.vue -> UPlot CPU usage view
│ │ ├── Polls.vue -> Polling configuration/view
│ │ ├── Resources.vue -> Resource overview view
│ │ ├── SystemInformation.vue -> System info view
│ │ └── Tasks.vue -> Task/process view
│ └── vite-env.d.ts
├── src-tauri
│ ├── build.rs -> Build script for Tauri/native build tasks
│ ├── capabilities
│ │ └── default.json -> Platform capability declarations
│ ├── Cargo.lock
│ ├── Cargo.toml -> Tauri backend crate manifest
│ ├── gen
│ │ └── schemas -> Generated schemas (IPC/config)
│ ├── .gitignore
│ ├── icons -> App icons for various platforms/sizes
│ └── src
| ├─ main.rs // Tauri bootstrap (registers commands, initializes app)
| ├─ lib.rs // backend library entry (shared logic)
| ├─ features/ // user-facing commands, handlers(in commands only the callbacks, not implementation)
| │ ├─ mod.rs
| │ ├─ applications/
| │ │ ├─ mod.rs
| │ │ └─ commands.rs
| │ └─ tasks/
| │ ├─ mod.rs
| │ └─ commands.rs
| ├─ backend/ // business logic, state, adapters, background ops
| │ ├─ mod.rs
| │ ├─ domain/ // all structs
| │ ├─ infra/ // Infrastructure/OS adapters and platform-specific code
| │ │ ├─ storage.rs // Defines the `Storage` trait to unify reads/writes of all domain data.
| │ │ ├─ guards.rs // A guard that auto-writes a database file on drop
| │ ├─ state/ // state manager & DB
| │ │ ├─ mod.rs
| │ │ ├─ connection_manager.rs // Connection manager for remote applications
| │ │ ├─ database.rs // Persistent, in-memory database backed by disk storage
| │ │ └─ state.rs // Manages access to persistent storage and provides high-level methods
| │ └─ mappers/ // Converters between console_api types and our domain type
| │ ├─ mod.rs
| │ ├─ async_ops.rs
| │ ├─ poll.rs
| │ ├─ resource.rs
| │ └─ tasks.rs
| └─ utils/ // helpers, errors, shared types
| ├─ mod.rs
| ├─ common.rs
| ├─ error.rs
| └─ warnings.rs
│ └── tauri.conf.json -> Tauri configuration (windows, bundle, security)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No need for this

├── tsconfig.json
├── tsconfig.node.json
├── vite.config.ts
├── .vscode
└── .zed
```
8 changes: 8 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[package]
name = "async-debugger"
version = "0.1.0"
edition = "2024"

[dependencies]
tokio = { version = "1", features = ["rt-multi-thread", "macros", "sync", "time", "tracing", "net" ] }
console-subscriber = "0.4.1"
Loading