Skip to content

fix: cleanup on aborted init#21

Merged
soedirgo merged 1 commit intomainfrom
fix/cleanup-aborted-init
Apr 9, 2021
Merged

fix: cleanup on aborted init#21
soedirgo merged 1 commit intomainfrom
fix/cleanup-aborted-init

Conversation

@soedirgo
Copy link
Copy Markdown
Member

@soedirgo soedirgo commented Apr 8, 2021

What kind of change does this PR introduce?

Bug fix.

What is the new behavior?

On supabase init, when encountering any error (except when .supabase already exists) or receiving Ctrl+C, do cleanup (remove invalid .supabase).

Also, print helpful error messages on errors.

Additional context

Closes #17.

@soedirgo soedirgo requested a review from kiwicopple April 8, 2021 14:41
Copy link
Copy Markdown
Member

@kiwicopple kiwicopple left a comment

Choose a reason for hiding this comment

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

Nice @soedirgo, go for it 👍

@soedirgo soedirgo merged commit 111303e into main Apr 9, 2021
@soedirgo soedirgo deleted the fix/cleanup-aborted-init branch April 9, 2021 06:39
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 9, 2021

🎉 This PR is included in version 0.3.8 🎉

The release is available on:

Your semantic-release bot 📦🚀

dumko2001 pushed a commit to dumko2001/cli that referenced this pull request Mar 15, 2026
…abase#21)

* refactor: replace manual urlencoded() with reqwest .query() builder

Remove duplicate hand-rolled urlencoded() functions from workflows.rs
and calendar.rs. All query parameters are now passed via reqwest's
.query() API, which handles percent-encoding correctly and completely.

* fix: percent-encode path parameters to prevent path traversal

Use percent_encoding::utf8_percent_encode for calendar_id, cal.id,
message_id, and file_id before interpolating into URL path segments.
Addresses code review feedback on security regression.

* fix: add shared URL safety helpers for path params

Add encode_path_segment() for single-segment IDs and
validate_resource_name() for multi-segment resource names.

encode_path_segment: percent-encodes all non-alphanumeric chars,
used for calendar IDs, file IDs, and message IDs.

validate_resource_name: rejects path traversal (..) and control
chars while preserving intentional / structure, used for Chat
space names, task list IDs, and subscription names. Returns clear
error messages for LLM callers.

* test: add AI edge case tests for URL safety helpers

Cover query/fragment injection, double-encoding, unicode, spaces,
path traversal via encoding, control chars (CR/tab), and clear
error message assertions for LLM callers.

* fix: warn on stderr when API calls fail silently

- Daily briefing calendar events fetch
- Daily briefing tasks fetch
- Daily summary calendar events fetch
- Daily summary unread email count fetch

Addresses PR review feedback about confusing silent failures,
especially for LLM callers that cannot see visual cues.

* fix: harden input validation for AI/LLM callers

- Add src/validate.rs with validate_safe_output_dir, validate_msg_format,
  and validate_safe_dir_path helpers
- Validate --output-dir against path traversal in gmail +watch and
  events +subscribe
- Validate --msg-format against allowlist in gmail +watch
- Validate --dir against path traversal in script +push
- Add clap value_parser constraint for --msg-format
- Document input validation patterns in AGENTS.md

Closes supabase#23

* chore: add changesets for PR supabase#21 commits

* test: add comprehensive test coverage for input validation handlers

* docs: document input validation and URL safety patterns in AGENTS.md and CONTRIBUTING.md

* fix: address PR review comments — reject ?/# in resource names, validate subscription arg, remove redundant validate_msg_format

* fix: store validated PathBuf, remove dead code, delete duplicate SubscribeConfig

Addresses review comments:
- Store validated PathBuf from validate_safe_output_dir instead of
  discarding it (output_dir is now Option<PathBuf>)
- Remove duplicate SubscribeConfig from events/mod.rs
- Delete unused validate_msg_format (clap value_parser handles this)
- Remove all #[allow(dead_code)] annotations

* fix: per-segment traversal check in validate_resource_name, fix docs

* fix: harden security validation and deduplicate logic

---------

Co-authored-by: jpoehnelt-bot <jpoehnelt-bot@users.noreply.github.com>
zlotnika pushed a commit to zlotnika/cli that referenced this pull request Apr 3, 2026
Co-authored-by: Pooya Parsa <pooya@pi0.io>
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.

start command won't recover from interrupted initialization

2 participants