diff --git a/.circleci/config.yml b/.circleci/config.yml
index 143bb3d..ae97d4e 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -26,7 +26,7 @@ jobs:
           # fallback to using the latest cache if no exact match is found
           - v1-dependencies-
 
-      - run: npm install
+      - run: npm install || exit 0
 
       - save_cache:
           paths:
diff --git a/package.json b/package.json
index b11954a..22bc2c0 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "typescript-assistant",
-  "version": "0.22.3",
+  "version": "0.22.4-0",
   "description": "",
   "main": "dist/index.js",
   "bin": {
@@ -88,7 +88,7 @@
     "tslint-microsoft-contrib": "5.0.1",
     "tslint-sonarts": "1.0.0",
     "tsutils": "2.12.1",
-    "typescript": "2.5.3",
+    "typescript": "2.6.0-rc",
     "typescript-formatter": "6.0.0",
     "ws": "3.2.0",
     "yargs": "9.0.1"
diff --git a/src/bus.ts b/src/bus.ts
index c39b690..2b4ca31 100644
--- a/src/bus.ts
+++ b/src/bus.ts
@@ -9,7 +9,7 @@ export type EventType =
   'source-files-changed' |
   'report';
 
-export type Callback = (info?: Report) => void;
+export type Callback = (info: Report | undefined) => void;
 
 export interface Report {
   tool: 'format' | 'lint' | 'test' | 'coverage' | 'compiler';
@@ -32,7 +32,7 @@ export let createBus = (): Bus => {
     signal: (eventType) => {
       let subscribers = allSubscribers[eventType];
       if (subscribers) {
-        subscribers.forEach(s => s());
+        subscribers.forEach(s => s(undefined));
       }
     },
     report: (report: Report) => {
diff --git a/src/commands/assist.ts b/src/commands/assist.ts
index c568805..a71fab6 100644
--- a/src/commands/assist.ts
+++ b/src/commands/assist.ts
@@ -1,15 +1,15 @@
 import { Dependencies } from '../dependencies';
 
 export let createAssistCommand = (deps: Dependencies) => {
-  let { formatter, linter, compiler, nyc, server } = deps;
+  let { formatter, linter, compiler, nyc, server, watcher } = deps;
 
   return {
     execute: () => {
-      // watcher.watchSourceFileChanged();
+      watcher.watchSourceFileChanged();
       server.start();
-      formatter.startVerifying(['compile-started' /*, 'source-files-changed' */]);
+      formatter.startVerifying(['source-files-changed']);
       linter.start('format-verified');
-      nyc.start(['compile-started' /*, 'source-files-changed' */]);
+      nyc.start(['source-files-changed']);
       compiler.start();
     }
   };
diff --git a/src/dependencies.ts b/src/dependencies.ts
index f655d5e..d0071cc 100644
--- a/src/dependencies.ts
+++ b/src/dependencies.ts
@@ -20,5 +20,5 @@ export interface Dependencies {
   logger: Logger;
   nyc: NYC;
   server: Server;
-  inject<T>(createFunction: (dependencies: Partial<Dependencies>) => T): T;
+  inject<T>(createFunction: (dependencies: Dependencies) => T): T;
 }
diff --git a/src/dependency-injector.ts b/src/dependency-injector.ts
index 8e2549a..507d3cc 100644
--- a/src/dependency-injector.ts
+++ b/src/dependency-injector.ts
@@ -12,7 +12,7 @@ import { sep } from 'path';
 import { createConsoleLogger } from './logger';
 import { Server } from './server';
 
-export let createDependencyInjector = (): <T>(createFunction: (dependencies: Partial<Dependencies>) => T) => T => {
+export let createDependencyInjector = (): <T>(createFunction: (dependencies: Dependencies) => T) => T => {
   let logger = createConsoleLogger();
   let taskRunner = sep === '\\' ? createWindowsTaskRunner() : createDefaultTaskRunner();
   let bus = createBus();
diff --git a/src/injector.ts b/src/injector.ts
index 66e987a..836728d 100644
--- a/src/injector.ts
+++ b/src/injector.ts
@@ -1,9 +1,9 @@
 export interface Injector<Dependencies> {
-  inject<T>(createFunction: (dependencies: Partial<Dependencies>) => T): T;
+  inject<T>(createFunction: (dependencies: Dependencies) => T): T;
 }
 
 export let createInjector = <Dependencies>(dependencies: Partial<Dependencies>): Injector<Dependencies> => {
   return {
-    inject: <T>(createFunction: (dependencies: Partial<Dependencies>) => T) => createFunction(dependencies)
+    inject: <T>(createFunction: (dependencies: Dependencies) => T) => createFunction(dependencies as any as Dependencies)
   };
 };
diff --git a/src/server.ts b/src/server.ts
index 52957f1..256684a 100644
--- a/src/server.ts
+++ b/src/server.ts
@@ -19,8 +19,8 @@ export let createServer = (deps: { bus: Bus, logger: Logger, linter: Linter, for
 
   return {
     start: () => {
-      let processReport = (report: Report) => {
-        lastReports[report.tool] = report;
+      let processReport = (report: Report | undefined): void => {
+        lastReports[report!.tool] = report!;
         let data = JSON.stringify(report, undefined, 2);
         wss.clients.forEach(client => client.send(data));
       };
@@ -55,7 +55,7 @@ export let createServer = (deps: { bus: Bus, logger: Logger, linter: Linter, for
         });
       });
 
-      logger.log('server', 'Experimental server listening on http://localhost:4551');
+      logger.log('server', 'Experimental server listening on http://localhost:4551/');
     }
   };
 };
diff --git a/src/watcher.ts b/src/watcher.ts
index ee746cd..d21b9ba 100644
--- a/src/watcher.ts
+++ b/src/watcher.ts
@@ -10,7 +10,8 @@ export let createWatcher = (dependencies: { bus: Bus }): Watcher => {
   return {
     watchSourceFileChanged: () => {
       let timeout: any;
-      let watch = chokidar.watch('./**/*.ts', { ignored: ['.d.ts', 'node_modules', 'build/**/*', 'dist/**/*'], ignoreInitial: true });
+      const ignored = ['**/*.d.ts', 'node_modules/**/*', 'build/**/*', 'dist/**/*', '**/.*/**/*'];
+      let watch = chokidar.watch('./**/*.ts', { ignored, ignoreInitial: true });
       watch.on('all', (evt, path) => {
         // batch events for a short amount of time to catch an IDE doing a save-all
         if (timeout === undefined) {
