Skip to content

Conversation

@croossin
Copy link
Contributor

Add History View Feature

Overview

Implements a history view that preserves the actual sequence of visits, in conjunction with the previous consolidated-only approach.

Key Changes

New Features

  • Chronological Timeline: Records every individual visit to preserve browsing sequence
  • Browser Tab Integration: History opens as native tab (Cmd+Y)
  • Advanced Search: Real-time filtering with search term highlighting
  • Date Grouping: Organizes visits by "Today", "Yesterday", and full dates
  • Bulk Management: Multi-select deletion and "Clear All" with confirmation
  • Private Mode Support: Shows appropriate messaging when history isn't recorded

Implementation

  • New Model: HistoryVisit for individual chronological entries
  • Hybrid Approach: Maintains both consolidated history (for suggestions) and detailed visits
  • Smart Debouncing: Prevents over-logging from redirects/refreshes (2-second cooldown)
  • URL Filtering: Excludes internal URLs (ora://, etc.) from history
  • Container Scoping: History remains workspace-specific

Usage

  1. Press Cmd+Y to open history tab
  2. Search by URL or title with live filtering
  3. Select items for deletion or use "Clear All"
  4. Click any entry to navigate to that page

Demo

CleanShot.2025-09-28.at.17.02.42.mp4

Help needed

Align on UX for bulk deletion, selection, appropriate debouncing (i.e. frequency of how/when visits are stored)

@versecafe
Copy link
Contributor

@croossin is the goal to implement all the browser settings pages in regular views but as swift UI rather than webpages or is it going to be a mix?

@croossin
Copy link
Contributor Author

@croossin is the goal to implement all the browser settings pages in regular views but as swift UI rather than webpages or is it going to be a mix?

My POV is that all views should be written in SwiftUI

@kenenisa
Copy link
Contributor

kenenisa commented Oct 2, 2025

This is really good @croossin. Can you explain the need HistoryView model? since there’s already a History model?

@croossin
Copy link
Contributor Author

croossin commented Oct 2, 2025

This is really good @croossin. Can you explain the need HistoryView model? since there’s already a History model?

@kenenisa The History model, to my understanding, is geared toward just high level tracking (i.e. increment view count). That will not suffice when building out a chronological view of History. There are two options:

  • Mutate the History model to actually record each view - not just increment
  • Add the HistoryView which relates to the History model so that we can get an accurate log of page visits

@kenenisa
Copy link
Contributor

kenenisa commented Oct 3, 2025

I was trying to avoid the history record getting too big with repeated entries but i guess there is no other way to do it so this should be fine.

@kenenisa
Copy link
Contributor

kenenisa commented Oct 3, 2025

@yonaries will clean up the ui

@croossin
Copy link
Contributor Author

croossin commented Oct 5, 2025

@kenenisa @yonaries -- landed on just leveraging the existing History model and mutated it so it can be leveraged for chronological history. I think it is at a good point for review - only things I could think of are tweaking the UI to desired fit/finish and if we want to change the debounce logic for when to record. LMK what you think.

@croossin croossin marked this pull request as ready for review October 5, 2025 14:04
@croossin croossin changed the title [draft] feat: history view feat: history view Oct 5, 2025
@yonaries yonaries linked an issue Oct 29, 2025 that may be closed by this pull request
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.

History

3 participants