Skip to content

Live Release 11/02/2026#329

Merged
karishnu merged 14 commits into
release-livefrom
main
Feb 11, 2026
Merged

Live Release 11/02/2026#329
karishnu merged 14 commits into
release-livefrom
main

Conversation

@karishnu

@karishnu karishnu commented Feb 11, 2026

Copy link
Copy Markdown
Collaborator

Summary

Live release v1.5.0 containing multiple features and improvements including signed URL security for screenshots, SQLite filesystem migration to chunked storage, Git operations improvements, and manual template selection support.

Changes

Security

  • Signed Screenshot URLs: Implemented JWT-based signed URLs for screenshot access (worker/utils/screenshot-security.ts)
    • Screenshots now require valid tokens with 6-hour expiry
    • Token verification validates appId and purpose claims
    • All screenshot URLs enriched with signatures across AppService methods

Storage & Performance

  • SQLite FS Chunked Storage Migration (worker/agents/git/fs-adapter.ts)
    • Migrated from base64-encoded TEXT to native BLOB storage
    • Introduced chunked file storage (1.8MB per chunk) for large files
    • Added automatic v1→v2 schema migration
    • Improved storage efficiency and removed 900KB file size limit

Git Operations

  • MemFS Symlink Support (worker/agents/git/memfs.ts)
    • Added proper symlink handling for git operations
    • Fixed path normalization for edge cases
  • Git Commit Logic (worker/agents/git/git.ts)
    • Fixed hasChanges() to exclude .git directory from status checks
    • Improved commit behavior when files are explicitly staged

Features

  • Manual Template Selection (worker/agents/index.ts)
    • Added support for user-specified templates bypassing AI selection
    • Refactored getTemplateForQuery into modular helper functions
  • FileManager Interface - Exposed syncGeneratedFilesMapFromGit() method publicly

Configuration

  • Bumped version to 1.5.0
  • Increased commitlint limits (header: 200, body/footer: 400)

Testing

  • Manual testing recommended for:
    • Screenshot access with signed URLs
    • Large file storage in git (>900KB files)
    • Template selection with manual override
    • Git clone operations with symlinks

Breaking Changes

  • Screenshot endpoint now requires ?token= query parameter for access
  • Screenshot URLs returned from API are now signed (clients should use URLs as-is)

Related Issues

AshishKumar4 and others added 14 commits February 3, 2026 16:30
Add JWT-based URL signing for screenshot endpoints to prevent unauthorized access. Screenshots now require valid tokens that are automatically appended to URLs and verified on access.
Feat: implement signed URL security for screenshot access
…n--components--vibesdk

chore(main): release 1.5.0
Replace single-row file storage with multi-chunk architecture to support files larger than 1MB SQL parameter limit. Implement automatic migration from v1 (base64 TEXT) to v2 (BLOB chunks) schema while maintaining backward compatibility during reads. Add chunk-based read/write operations with 1.8MB chunk size and update all file operations to handle chunked data storage.
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Feat: migrate SQLite filesystem adapter to chunked storage model
@github-actions github-actions Bot added documentation Improvements or additions to documentation dependencies Pull requests that update a dependency file worker database agent labels Feb 11, 2026
@github-actions

github-actions Bot commented Feb 11, 2026

Copy link
Copy Markdown
Contributor

Claude finished @karishnu's task in 1m 41s —— View job


Code Quality & Security Review (Critical Path)

Recommendation: ✅ APPROVE

PR Summary

Live release v1.5.0 containing signed URL security for screenshots, SQLite filesystem migration to chunked storage model, Git operation improvements, and manual template selection support.

PR Description

  • Updated: Yes
  • Notes: Added comprehensive summary, changes list, testing notes, breaking changes section, and linked to related issue Improve Screenshot Workflow #249

Addressed Issues


Code Quality

Critical: None

High: None

Medium:

  1. worker/api/controllers/screenshots/controller.ts:110-111 - Inconsistent indentation (tabs vs spaces) in catch block
  2. worker/utils/encoding.ts:34-40 - Inconsistent indentation style (tabs vs spaces mixing)

Low:

  1. worker/agents/index.ts - Good refactoring of getTemplateForQuery into modular helper functions, improves maintainability
  2. worker/database/services/AppService.ts:94-95 - Using any type cast (as any), though this is pre-existing code

Security

Critical: None

High: None

Medium: None

Low:

  1. worker/api/routes/imagesRoutes.ts:8 - Screenshot route changed from authenticated to public auth level. This is intentional as security is now handled via signed tokens, but worth noting the access model change.

Security Analysis Summary

The signed screenshot URL implementation is well-designed:

Aspect Assessment
Token Generation ✅ Uses JWT with 6-hour expiry, includes appId and purpose claims
Token Verification ✅ Validates both appId match and purpose claim
Path Traversal ✅ Strong validation in isValidAppId() and validateFileName()
Error Handling ✅ Returns 404 for invalid tokens (prevents enumeration)
Cache Headers ✅ Reduced from immutable/1-year to 6-hour cache (matches token expiry)

The SQLite FS migration handles backward compatibility correctly:

  • Legacy base64 TEXT data is still readable via rowDataToBytes()
  • Migration preserves existing data while enabling new BLOB storage
  • Chunked storage removes the 900KB file size limit

Testing Recommendations

  • Verify screenshot access with valid signed URLs
  • Verify screenshot access fails without token or with expired token
  • Test large file storage (>900KB) in git operations
  • Test git clone with symlinks (MemFS changes)
  • Test manual template selection bypasses AI flow

Final Recommendation

Approve - The changes implement proper security controls for screenshot access, improve storage efficiency with the chunked model, and add useful features. No critical or high-severity issues found. The minor formatting inconsistencies are cosmetic and don't affect functionality.

@karishnu
karishnu merged commit bd8e9fe into release-live Feb 11, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agent database dependencies Pull requests that update a dependency file documentation Improvements or additions to documentation size/XL worker

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants