Merged
Conversation
Zetkolink
referenced
this pull request
in Zetkolink/forgecode
Apr 8, 2026
Bugs fixed: - #1: Unified timestamp format — all tables use strftime('%s','now') (unix seconds) - #2: delete_file_refs and delete_workspace wrapped in transactions - tailcallhq#19: Removed chrono_now(), use SQLite DEFAULT instead Security: - tailcallhq#15: All workspace methods verify ownership (authenticate_and_verify_owner) - Added db.verify_workspace_owner() method Code quality: - tailcallhq#7: ForgeServiceImpl fields private, added new() constructor - tailcallhq#8: IntoStatus trait eliminates 15+ duplicate .map_err() calls - tailcallhq#9: Removed unused lock_conn helper, kept consistent pattern - tailcallhq#11: Documented ends_with filter limitation in qdrant.rs - tailcallhq#10: reqwest Client with 120s timeout + 10s connect_timeout - tailcallhq#18: Added extract_workspace_id() helper Co-Authored-By: ForgeCode <noreply@users.noreply.github.com>
Zetkolink
referenced
this pull request
in Zetkolink/forgecode
Apr 8, 2026
Bugs fixed: - #1: Unified timestamp format — all tables use strftime('%s','now') (unix seconds) - #2: delete_file_refs and delete_workspace wrapped in transactions - tailcallhq#19: Removed chrono_now(), use SQLite DEFAULT instead Security: - tailcallhq#15: All workspace methods verify ownership (authenticate_and_verify_owner) - Added db.verify_workspace_owner() method Code quality: - tailcallhq#7: ForgeServiceImpl fields private, added new() constructor - tailcallhq#8: IntoStatus trait eliminates 15+ duplicate .map_err() calls - tailcallhq#9: Removed unused lock_conn helper, kept consistent pattern - tailcallhq#11: Documented ends_with filter limitation in qdrant.rs - tailcallhq#10: reqwest Client with 120s timeout + 10s connect_timeout - tailcallhq#18: Added extract_workspace_id() helper
Zetkolink
referenced
this pull request
in Zetkolink/forgecode
Apr 8, 2026
Bugs fixed: - #1: Unified timestamp format — all tables use strftime('%s','now') (unix seconds) - #2: delete_file_refs and delete_workspace wrapped in transactions - tailcallhq#19: Removed chrono_now(), use SQLite DEFAULT instead Security: - tailcallhq#15: All workspace methods verify ownership (authenticate_and_verify_owner) - Added db.verify_workspace_owner() method Code quality: - tailcallhq#7: ForgeServiceImpl fields private, added new() constructor - tailcallhq#8: IntoStatus trait eliminates 15+ duplicate .map_err() calls - tailcallhq#9: Removed unused lock_conn helper, kept consistent pattern - tailcallhq#11: Documented ends_with filter limitation in qdrant.rs - tailcallhq#10: reqwest Client with 120s timeout + 10s connect_timeout - tailcallhq#18: Added extract_workspace_id() helper
xihale
added a commit
to xihale/forgecode
that referenced
this pull request
Apr 26, 2026
- Fix path traversal bypass in validate_hook_path_for_delete: add lexical normalization to resolve `..` components before the starts_with check (tailcallhq#1) - Ensure validate_hook_path_for_delete returns paths relative to the non-canonical base, so relative_hook_path() can strip the prefix correctly even when HOME is a symlink (tailcallhq#6) - Upgrade PreparedHook::prepare() failure from debug! to warn! so users are alerted when trusted hooks fail to load (tailcallhq#2) - Replace 3-tuple return in resolve_and_validate_hook_path with a named ResolvedHook struct for readability (tailcallhq#4) - Use structured logging fields (path + error) in TrustStore::load() warning instead of inline format string (tailcallhq#5) Co-Authored-By: ForgeCode <noreply@forgecode.dev>
xihale
added a commit
to xihale/forgecode
that referenced
this pull request
Apr 26, 2026
- Replace unwrap_or fallback with expect() in validate_hook_path_for_delete traversal check — strip_prefix cannot fail unless there is a logic bug, and the fallback silently bypassed the security check (tailcallhq#1) - Fix relative_hook_path to fall back to canonical base when the input path is canonicalized (e.g. validate_hook_path returns a canonical path but HOME is a symlink) — prevents storing absolute-path keys in the trust store (tailcallhq#2) - Move ResolvedHook struct to module level for better reusability (tailcallhq#4) Co-Authored-By: ForgeCode <noreply@forgecode.dev>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.