v1.4.0

lfnovo/open-notebookv1.4.0Jan 15, 2026by lfnovo

AI Summary

This release focuses on improving file upload capabilities, enabling offline deployments, and enhancing user onboarding. It includes a major Next.js upgrade from 15 to 16, which resolves large file upload issues.

Key Highlights

  • Upgraded Next.js from 15.4.10 to 16.1.1
  • Enables large file uploads up to 100MB (previously limited to 10MB)
  • Improved Dockerfile for offline/airgapped deployments
  • Added CTA button to empty notebook list for better onboarding
  • Fixed orphaned uploaded files with proper cleanup logic
  • Fixed broken documentation links
  • Prevented duplicate Claude Code workflow runs

New Features

  • Large file uploads (up to 100MB)
  • Offline deployment support
  • Better onboarding experience with CTA button
  • Improved file cleanup logic
  • Fixed documentation links
  • Optimized CI/CD workflow

Full Release Notes

# Release Notes - v1.4.0

Release Date: January 14, 2026

## Overview

Version 1.4.0 is a feature release focused on improving file upload capabilities, enabling offline deployments, and enhancing the user onboarding experience. This release includes a major Next.js upgrade (15 → 16) that resolves large file upload issues, plus several important bug fixes for documentation, workflow automation, and file cleanup.

## ✨ Features

### Next.js 16 Upgrade (#423)
- **Upgraded Next.js from 15.4.10 to 16.1.1**
  - Enables `proxyClientMaxBodySize` configuration for large file uploads
  - Upgraded React from 19.1.0 to 19.2.3
  - Renamed `middleware.ts` → `proxy.ts` (required by Next.js 16)
  - Users can now upload files larger than 10MB (up to 100MB)
  - Resolves "Unrecognized key" warnings from Next.js 15

### Offline Deployment Support (#414)
- **Improved Dockerfile for offline/airgapped deployments**
  - Prevents uv from attempting to sync libraries at runtime
  - Enables deployment in isolated networks without internet access
  - Contributed by @thesohamdatta

### Better Onboarding Experience (#408)
- **Added CTA button to empty notebook list**
  - Prominent "Create Notebook" button when notebook list is empty
  - Improves new user onboarding flow
  - Context-aware: only appears on active notebook list, not during searches
  - Contributed by @thesohamdatta

## 🐛 Bug Fixes

### File Management
- **Fixed orphaned uploaded files** (#421)
  - Uploaded files are now properly deleted when sources are removed
  - Prevents accumulation of orphaned files consuming disk space
  - Added comprehensive test coverage for file cleanup scenarios
  - Fixes #420

### Documentation
- **Fixed broken documentation links** (#419)
  - Updated all references from non-existent `docs/features/ai-models.md`
  - Corrected path to `docs/5-CONFIGURATION/ai-providers.md`
  - Removed outdated `setup_guide/` directory
  - Fixes #412

- **Removed ZIP support indication** (#418)
  - Updated file upload UI to remove "Archives (ZIP)" from supported formats
  - Aligns UI with actual backend capabilities
  - Fixes #415

### CI/CD & Workflow Improvements
- **Prevented duplicate Claude Code workflow runs** (#417)
  - Fixed duplicate workflow runs from both `pull_request` and `pull_request_target` triggers
  - Fork PRs now only use `pull_request_target` (has OIDC tokens)
  - Same-repo PRs now only use `pull_request` (faster, uses PR workflow version)
  - Eliminates wasted CI resources and confusing duplicate checks

- **Claude Code review workflow now supports forks** (#416)
  - Changed trigger from `pull_request` to `pull_request_target`
  - External contributors can now get AI-powered code reviews
  - Resolves OIDC token authentication errors for fork PRs
  - Fixes #414 workflow failures

## 🔧 Technical Changes

### Frontend
- Next.js: 15.4.10 → 16.1.1
- React: 19.1.0 → 19.2.3
- react-dom: 19.1.0 → 19.2.3
- `middleware.ts` renamed to `proxy.ts` (Next.js 16 requirement)
- Added `proxyClientMaxBodySize: '100mb'` configuration

### Backend
- Improved Dockerfile with proper uv dependency installation
- Added file cleanup logic in `Source.delete()` method

### Documentation
- Updated reverse proxy documentation with version requirements
- Fixed multiple broken internal links
- Removed outdated setup guides

## 🙏 Contributors

Thank you to our contributors for this release:
- @lfnovo
- @thesohamdatta

## Upgrade Notes

This release includes a major Next.js upgrade (15 → 16). While we've tested thoroughly, please review the following:

### Breaking Changes
None - this release is backward compatible with v1.3.1.

### Recommended Actions After Upgrade
1. **Large file uploads now work**: Files up to 100MB can be uploaded (previously limited to 10MB)
2. **If deploying offline**: Review the updated Dockerfile to ensure your airgapped deployment works correctly
3. **If using reverse proxy**: Verify your reverse proxy configuration allows 100MB request bodies (see docs/5-CONFIGURATION/reverse-proxy.md)

### Known Issues
- Standalone server mode in Next.js 16 is being used for Docker deployments
- Current branch `fix/nextjs-standalone-server` may have additional fixes pending

## Full Changelog

**All merged PRs since v1.3.1:**
- #423: feat: upgrade Next.js 15 → 16 to fix large file uploads
- #421: fix: delete uploaded files when sources are removed
- #419: fix: update broken documentation links to ai-providers.md
- #418: fix: remove zip support indication
- #417: fix: prevent duplicate Claude Code workflow runs
- #416: fix: allow claude code review workflow to run on PRs from forks
- #414: feat: improve dockerfile to support offline deployments
- #408: feat: add CTA button to empty state list

---

For more information, visit:
- **Documentation**: https://open-notebook.ai
- **Discord**: https://discord.gg/37XJPXfz2w
- **GitHub**: https://github.com/lfnovo/open-notebook