Add Core Workspace Storage Service base#38
Conversation
📝 WalkthroughWalkthroughThis PR implements the core ChangesCore Library Implementation with Note Persistence
CLI Application Scaffold
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@Cargo.toml`:
- Around line 4-6: The workspace member in Cargo.toml lists "apps/frivault-cli"
which looks like a typo versus the project name FrilVault and the core crate
"frilvault-core"; rename the directory and crate to match: change the workspace
member to "apps/frilvault-cli", rename the filesystem folder apps/frivault-cli →
apps/frilvault-cli, and update the package name in that crate's Cargo.toml (the
package.name field) to "frilvault-cli" so the workspace entry, directory name,
and crate name are consistent.
In `@crates/frilvault-core/Cargo.toml`:
- Line 9: The dependency serde_yml = "0.0.12" is flagged as
unsound/unmaintained; replace or mitigate it by switching to a maintained YAML
crate (e.g., serde_yaml) or a vetted fork and updating all code paths that
import/use serde_yml to the new crate name (search for uses of serde_yml in
Cargo.toml and in imports/usages throughout the crate); update Cargo.toml
dependency entry and adjust any feature flags or API call sites to match the
chosen replacement, run cargo build/test to ensure compatibility, and remove
serde_yml once all references are migrated.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 91abca54-558f-4290-806e-075f0dd8fa13
⛔ Files ignored due to path filters (1)
Cargo.lockis excluded by!**/*.lock
📒 Files selected for processing (24)
Cargo.tomlapps/frivault-cli/Cargo.tomlapps/frivault-cli/src/main.rscrates/frilvault-core/Cargo.tomlcrates/frilvault-core/src/constants.rscrates/frilvault-core/src/error/errors.rscrates/frilvault-core/src/error/mod.rscrates/frilvault-core/src/lib.rscrates/frilvault-core/src/note/entity.rscrates/frilvault-core/src/note/mod.rscrates/frilvault-core/src/note/service.rscrates/frilvault-core/src/parser/mod.rscrates/frilvault-core/src/parser/note_parser.rscrates/frilvault-core/src/parser/yaml_parser.rscrates/frilvault-core/src/storage/mod.rscrates/frilvault-core/src/storage/yaml_repository.rscrates/frilvault-core/src/tests/mod.rscrates/frilvault-core/src/tests/note_entity_test.rscrates/frilvault-core/src/tests/note_resolver_test.rscrates/frilvault-core/src/tests/note_service_test.rscrates/frilvault-core/src/tests/yaml_parser_test.rscrates/frilvault-core/src/workspace/mod.rscrates/frilvault-core/src/workspace/models.rscrates/frilvault-core/src/workspace/path_resolver.rs
| members = ["apps/frivault-cli", | ||
| "crates/frilvault-core" | ||
| ] No newline at end of file | ||
| ] |
There was a problem hiding this comment.
Likely typo in crate directory name: frivault-cli vs project frilvault.
The CLI member is apps/frivault-cli (missing an l), while the core crate is frilvault-core and the project is FrilVault. If unintentional, rename the directory/crate now while it's still a scaffold to avoid churn later.
✏️ Proposed fix
-members = ["apps/frivault-cli",
+members = ["apps/frilvault-cli",
"crates/frilvault-core"
]Note: also rename the apps/frivault-cli directory and update its Cargo.toml package name accordingly.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@Cargo.toml` around lines 4 - 6, The workspace member in Cargo.toml lists
"apps/frivault-cli" which looks like a typo versus the project name FrilVault
and the core crate "frilvault-core"; rename the directory and crate to match:
change the workspace member to "apps/frilvault-cli", rename the filesystem
folder apps/frivault-cli → apps/frilvault-cli, and update the package name in
that crate's Cargo.toml (the package.name field) to "frilvault-cli" so the
workspace entry, directory name, and crate name are consistent.
| [dependencies] | ||
| chrono = { version = "0.4", features = ["serde"] } | ||
| serde = { version = "1", features = ["derive"] } | ||
| serde_yml = "0.0.12" |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Latest serde_yml version on crates.io
curl -s https://crates.io/api/v1/crates/serde_yml | jq '.crate.max_stable_version, .crate.newest_version'
# Security advisories for serde_yml
gh api graphql -f query='
{
securityVulnerabilities(first: 5, ecosystem: RUST, package: "serde_yml") {
nodes {
advisory { summary severity publishedAt }
vulnerableVersionRange
firstPatchedVersion { identifier }
}
}
}'Repository: FrilLab/frilvault
Length of output: 313
Address the serde_yml advisory for serde_yml = "0.0.12".
GitHub reports serde_yml as “unsound and unmaintained” (MODERATE) with vulnerableVersionRange <= 0.0.12 and no firstPatchedVersion. The currently pinned 0.0.12 falls in the vulnerable range, so this dependency needs replacement/mitigation (e.g., switch to a maintained YAML backend or another vetted crate/fork) rather than just version confirmation.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@crates/frilvault-core/Cargo.toml` at line 9, The dependency serde_yml =
"0.0.12" is flagged as unsound/unmaintained; replace or mitigate it by switching
to a maintained YAML crate (e.g., serde_yaml) or a vetted fork and updating all
code paths that import/use serde_yml to the new crate name (search for uses of
serde_yml in Cargo.toml and in imports/usages throughout the crate); update
Cargo.toml dependency entry and adjust any feature flags or API call sites to
match the chosen replacement, run cargo build/test to ensure compatibility, and
remove serde_yml once all references are migrated.
Summary
Add Core Workspace Storage Service base code.
Closes #6
Closes #7
Closes #8
Closes #9
Closes #10
Closes #12
Type of Change
Testing
Checklist
Summary by CodeRabbit
Release Notes