Skip to content

chore(deps): drop five orphaned email workspace dependencies#6193

Merged
houko merged 2 commits into
mainfrom
chore/6176-drop-orphaned-email-deps
Jun 19, 2026
Merged

chore(deps): drop five orphaned email workspace dependencies#6193
houko merged 2 commits into
mainfrom
chore/6176-drop-orphaned-email-deps

Conversation

@houko

@houko houko commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Summary

Fixes #6176. Five email dependencies left over from the channel sidecar migration are declared in the root Cargo.toml [workspace.dependencies] but have no member consumer and are already absent from Cargo.lock.

A correction to the issue's framing: an unused [workspace.dependencies] entry is never pulled into the build graph by Cargo, so these were not compiled, audited, or adding to binary size. The real defect is dead declaration cruft, which is still worth removing.

Verification of orphan status

$ for c in lettre imap rustls-connector mailparse rustls-pemfile; do
    echo "$c lock-count=$(grep -c "^name = \"$c\"" Cargo.lock)"; done
lettre lock-count=0
imap lock-count=0
rustls-connector lock-count=0
mailparse lock-count=0
rustls-pemfile lock-count=0

No member declares any via .workspace = true; no .rs file imports them. The documenting comments in crates/librefang-channels/Cargo.toml and crates/librefang-cli/Cargo.toml already note these were dropped alongside their adapters (the sidecars use Python stdlib).

Changes

  • Cargo.toml — remove the 5 orphaned [workspace.dependencies] (lettre, imap, rustls-connector, mailparse, rustls-pemfile) and their section comments.
  • deny.toml — remove the now-unmatchable RUSTSEC-2025-0134 (rustls-pemfile) advisory ignore, since that crate no longer appears in the resolved graph.
  • CHANGELOG.md — entry under [Unreleased] → Changed.

Cargo.lock is unchanged (the crates were never in it).

Verification

$ cargo check --workspace --lib
Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 10s

Passes — no member opted in, so removing the declarations cannot change the compiled output.

@github-actions github-actions Bot added has-conflicts PR has merge conflicts that need resolution area/docs Documentation and guides size/S 10-49 lines changed labels Jun 18, 2026
Evan and others added 2 commits June 18, 2026 16:37
lettre / imap / rustls-connector / mailparse / rustls-pemfile were declared in
the root Cargo.toml [workspace.dependencies] but had no member consumer (no
.workspace = true, no use) and were already absent from Cargo.lock after the
channel sidecar migration. An unused workspace dependency is never pulled into
the build graph, so contrary to the issue framing they were not compiled,
audited, or adding binary size -- the defect is dead declaration cruft.

Also drop the now-unmatchable deny.toml ignore for RUSTSEC-2025-0134
(rustls-pemfile), since that crate no longer appears in the resolved graph.

Declaration-only removal; Cargo.lock is unchanged. Verified with
cargo check --workspace --lib.

Closes #6176
@houko
houko force-pushed the chore/6176-drop-orphaned-email-deps branch from a221339 to a2be28f Compare June 18, 2026 07:37
@github-actions github-actions Bot added ready-for-review PR is ready for maintainer review and removed has-conflicts PR has merge conflicts that need resolution labels Jun 18, 2026
@houko
houko merged commit d78631f into main Jun 19, 2026
33 checks passed
@houko
houko deleted the chore/6176-drop-orphaned-email-deps branch June 19, 2026 04:37
GQAdonis pushed a commit to GQAdonis/librefang that referenced this pull request Jun 19, 2026
Merge upstream/main into the BossFang fork; origin/main was 15 commits behind.

Notable upstream changes:
- librefang#6225 scope the compaction-summary banner to the compacted session (adds canonical_sessions.compacted_summary_session_id).
- librefang#6196 deny WASM fs_write to the audit anchor via a capability deny-list.
- librefang#6226 / librefang#6227 add agent label and exit-reason metrics to the agent loop.
- librefang#6215 context-window usage indicator + honest quota-error classification.
- librefang#6217 per-instance sidecar secrets so each agent owns its own handle.
- librefang#6194 global Auto-Dream on/off switch on the Memory tab.
- librefang#6211 / librefang#6214 / librefang#6212 token/context cap fixes; librefang#6208 refuse to delete the active prompt version.
- librefang#6218 browser_tools.rs ToolError migration; librefang#6203 launchctl let-binding build fix; librefang#6224 docs dep bumps; librefang#6193 drop five orphaned email deps.

Conflict resolution:
- deny.toml: keep our RUSTSEC-2025-0141 (bincode 2.0.x) ignore entry (take ours).
- deny.toml: ignore three pre-existing unmaintained advisories newly tripped by the RustSec DB (all transitive via the UAR provider chain, none introduced by this merge): RUSTSEC-2024-0384 (instant), RUSTSEC-2024-0436 (paste), RUSTSEC-2025-0119 (number_prefix).

BossFang preservation (SurrealDB schema parity for upstream SQLite v46 / librefang#6225):
- Add crates/librefang-storage/src/migrations/sql/032_canonical_sessions_compacted_summary_session_id.surql declaring the new field on the SCHEMAFULL canonical_sessions table (SCHEMAFULL silently drops undefined fields on write), registered as version 32 in migrations/mod.rs.
- migrate/sqlite_to_surreal.rs: copy the new column so a SQLite to SurrealDB migration preserves the owning-session pointer rather than dropping it.
- backends/surreal_session.rs: preserve compacted_summary_session_id across canonical appends, since the upsert replaces the whole record.
- Cargo.lock: pick up the workspace version bump (beta.19 to beta.20) the merge introduced.

Verification:
- cargo check --workspace --lib — clean.
- cargo check -p librefang-storage -p librefang-memory -p librefang-uar-spec — clean.
- cargo test -p librefang-storage migration — ok (migration ordering / SurrealDB-3 flexible-syntax invariants).
- cargo test -p librefang-memory --lib session — 50 passed (incl. upstream's store_llm_summary round-trip test).
- cargo clippy -p librefang-storage -p librefang-memory — clean.
- python3 scripts/enforce-branding.py --check — clean; Tauri desktop audit and URL-drift scan both clean.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/docs Documentation and guides ready-for-review PR is ready for maintainer review size/S 10-49 lines changed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chore(deps): remove 5 orphaned email dependencies after sidecar migration

2 participants