---
title: "0.4.0"
url: "https://www.cypress.io/releases/0-4-0"
description: "Features: sinon-as-promised is now a bundled extension. tests without an id now run (with a random temporarily assigned id). tests with a duplicate id to…"
---

# 0.4.0

ReleasedReleased on April 1, 2015

**Features:**

-   `sinon-as-promised` is now a bundled extension.
    
-   tests without an `id` now run (with a random temporarily assigned id).
    
-   tests with a duplicate `id` to another test will now run (with a random temporarily assigned id).
    
-   tests or suites which are manually re-run from the UI now hide all of the other tests / suites.
    

**Bugfixes:**

-   Fixed hook failure associated to wrong failed current test when `grep` was set.
    
-   Async tests which used a `cy` command and had a `done` callback was always undefined. Now it's back to real Mocha `function done(err)`.
    
-   Fixed bug in Mocha where it incorrectly associates `hook.ctx.currentTest` to the wrong `test`. [Mocha Issue](https://github.com/mochajs/mocha/issues/1638).
    
-   [`cy.title()`](/api/commands/title) no longer logs twice on a failure.
    
-   Fixed putting an `.only` on a large list of tests that would sometimes not clear the previous runnables in the UI.
    

**Misc:**

-   Optimized first test run after hard refresh.
    
-   Performance improvements on successive runnable iterations.
    
-   Aborting currently running tests performance improvement.
    
-   Live reload performance improvements when tests are changed.
    
-   Added 100+ tests covering Runner + Reporter behavior.
    
-   Aggressively cleaned up listeners after each test completion + run.
    
-   Added additional `Cypress` events for 3rd party custom handling.