Skip to content

Fix/review hardening - #17

Merged
camilesing merged 2 commits into
mainfrom
fix/review-hardening
Sep 13, 2026
Merged

camilesing merged 2 commits into
mainfrom
fix/review-hardening

Conversation

@camilesing

@camilesing camilesing commented Sep 13, 2026

Copy link
Copy Markdown
Owner

Summary

Testing

  • cargo fmt --all -- --check
  • cargo clippy --workspace --all-targets --all-features
  • cargo test --workspace --all-features

Checklist

  • Updated docs or comments as needed
  • Added or updated tests where relevant
  • Verified TUI behavior manually if UI changes

…(M1/M2)

- ModeDefinitionToml in codesmith-config: app_mode, reasoning_effort,
  approval_policy, sandbox_mode, memory_level, max_subagents, model,
  provider, tools.include/exclude, features overrides; every field
  optional (delta semantics, composes with existing config)
- built-in modes minimal/balanced/maximal/plan ship in the binary;
  ~/.codesmith/modes/ then <workspace>/.codesmith/modes/ override by
  name; broken files skip with a warning instead of blocking startup
- enforce tool selection at the per-turn catalog build:
  apply_tool_selection (allow+deny, case-insensitive, dispatch
  machinery exempt) + blocked_tools threaded through Op::SendMessage
  into EngineConfig — allowed_tools was plumbed but never enforced
- /mode list|<name>|off|export[!]; catalog modes take precedence over
  legacy agent/plan/yolo tokens so /mode plan applies the full delta;
  --mode CLI (tui + facade forwarding), config.toml mode key, settings
  persistence, footer chip; live dials switch next turn, provider/
  features/memory honestly reported as restart-required
- memory_level maps onto the existing memory + KOD layers:
  goldfish (off) / notebook (explicit-only) / elephant (auto+decay)
- docs: README "One Binary, Many Modes" section, MODES.md/MODES_cn.md
  schema + semantics, config.example.toml mode key
- sandbox: bwrap die-with-parent + clean /dev//proc//sys + policy-driven
  --share-net; seatbelt outbound-only network; hardening before runtime
  boot; dead seccomp module removed
- secrets: 0600 atomic store writes, no CWD/plaintext-config fallbacks,
  no DeepSeek-key reuse on NVIDIA endpoints; /v1/* auth header-only,
  mobile SSE via fetch with Authorization header
- paths: shared is_safe_path_component + symlink re-canonicalization
  (agent memory, vision), task-id/extension-entry/session-id validation
- correctness: CJK-aware token heuristic, shared estimator everywhere;
  LSP stderr drain, URI percent-encoding, initialize ordering, per-URI
  diagnostics cache; prompt-framing escape helpers at six injection sites
- team: roster-based protocol authorization, explicit lead identity,
  empty-name/collision guards, broadcast partial-failure reporting
- infra: verify_task.sh exit-code/REWARD/test.patch semantics; atomic
  writes unified on write_atomic; gh/prefetch/hook blocking I/O moved off
  tokio workers; web dedup-key/link/facts fixes; dead code and network-
  hitting tests cleaned
@camilesing
camilesing merged commit 0be2b3c into main Sep 13, 2026
5 of 10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant