Why Voice Time Tracking Has to Feel Instant (Even When You Still Confirm) - MinuteShark

Engineering

Why Voice Time Tracking Has to Feel Instant (Even When You Still Confirm)

Voice time tracking is a latency problem dressed up as a microphone icon. If the transcript and the confirmation card arrive after you have already pocketed the phone, the feature does not exist.

Freelancers do not open an assistant because they want to chat. They open it because the work just happened — a client call on a sidewalk, a site visit between buildings, a forgotten thirty minutes that will evaporate unless it is captured now. The window is short. The tool either keeps up or it becomes another thing you promise to “log later.”

The path we shipped on iOS and Android: microphone → transcript review → send → proposal card → Confirm. Every hop is there on purpose. The product question is whether the whole chain still feels like one breath.

This is an engineering post about that budget. It is not a redo of why MinuteShark AI never writes until you confirm. Confirmation stays. Speed is how confirmation remains a decision instead of a rubber stamp.

Why mobile voice is a different clock than desktop typing

On the web, MinuteShark AI is a floating widget next to a keyboard-first Ionic app. You can type “Log 1 hour on Homepage mockups for today” while the dashboard search is still on screen. Typing is already a pause. A little extra wait for a card is annoying. It is rarely fatal.

On a phone, the pause is the whole product. You are standing up. One hand is busy. The other clients are still pinging. Voice is the only input that matches how you already talk about the work. If the assistant is sluggish, you do not “wait politely.” You lock the phone and donate the time.

That is why we treat time-to-usable-card as a first-class bug, the same way we treat a wrong task pick as an accuracy bug. A correct card that arrives too late is an incorrect product.

The hops we refused to collapse

It is tempting to pipe audio straight into a write. That demo looks magical in a hallway. It is a liability on an invoice. We kept four human-visible stages.

If the request is ambiguous, you get a short picker. If it is out of scope — weather, trivia, a general-knowledge detour — the assistant stays a workspace copilot. It does not pretend to be the internet while you are trying to log yesterday’s standup.

Where the latency actually lives

People blame “the model.” In a mobile voice path, the model is rarely the only slow thing. The budget is a stack of clocks.

  • Permission and session warmup. First tap after install, or after iOS has forgotten the mic entitlement in your head, feels like the feature is broken. It is usually the OS.
  • Capture to transcript. The user cannot review words that have not appeared. A late transcript makes the next hops feel later than they are.
  • Network to proposal. The card needs enough context to name the right task. That round trip is a Firebase Function talking to the model, then a structured proposal coming back to Angular.
  • Render to attention. A card that paints after you have looked away might as well not have painted. Confirmation then becomes habit, not judgment.

We would rather spend time making the transcript appear and the card commit-ready than shaving a hop that exists for safety. Silent writes are faster. They are also how you invent a timesheet you cannot defend.

The same Ionic + Angular 16 codebase ships on web and, through Capacitor 7, as native iOS and Android shells. Voice and Live Activities are native extras. The mutation path is not a second product. Confirm still hits the same cloud-synced workspace you see on a laptop. Firebase Auth is how the phone and the browser agree who you are. The database change is a real commit, not an optimistic local scribble that later argues with another device.

How we evaluate voice without turning it into a leaderboard

A pretty word-error rate can still produce a terrible timesheet. “Log thirty on yesterday’s standup” can transcribe cleanly and still attach to the wrong client if two projects share a nickname. Evaluation has to score the billing outcome, not the karaoke score.

The checks we care about:

  • Transcript fidelity on proper nouns. Client and task names are the payload. “Homepage” is easy. “Northwind” in traffic noise is the real test.
  • Task resolution after a messy transcript. Did the card pick the visible task a human would have picked, or did it invent a neighbor?
  • Date and timezone. “Yesterday” at 12:10 a.m. is a product decision, not a linguistic one.
  • Time-to-card after send. If people start confirming without reading, we failed the latency budget even if the model was “accurate.”
  • No silent side effects. Asking “How much time did I track today?” must read supplied stats. It must not log time in order to have an answer.

Chat history is kept for up to seven days, across multiple conversations. That is enough to revert a bad confirm. It is not a reason to skip the card. Revert is a seatbelt. Confirmation is the brake.

What we will not speed up by guessing

There is a whole category of “fast” time tracking that watches you. Screenshots, idle inference, keystroke theater. That is the opposite of MinuteShark. We will not invent forgotten time from silence, and we will not start a second timer because voice was faster than the sidebar. One running timer. One proposed write. One human Confirm.

Algolia still powers the giant dashboard search when you would rather tap a play icon than talk. Voice is an on-ramp, not a religion. The plain-English introduction of MinuteShark AI already listed the actions: add clients and projects, log or edit time, start a timer, open a filtered report. Voice just lets you issue those from a lock screen life.

If you want the longer catalog, it lives on the features list. The constraint that matters here is simpler: the assistant can be quick without being unsupervised.

What this means if you are building a mobile copilot

Show the transcript. Show the mutation. Persist on confirm. Measure the time until a careful person can say yes. If your fastest path requires hiding the write, you optimized the demo, not the invoice.

MinuteShark AI is included on every plan, with a monthly message allowance per user. Voice does not spend a secret extra quota. It spends the same messages as typing, plus the milliseconds you feel in your hand. We would rather those milliseconds go to a card you actually read.

Previous Post Back to Blog Next Post