HN user

_cfl0

1 karma
Posts3
Comments33
View on HN
[dead] 4 years ago

I built haystack - natural language search engine for workplace technical knowledge.

I've been a software engineer for a few years now,

A few weeks ago I was scrolling through confluence pages trying to find ssh connection details to our jenkins second integration machine for 40 minutes straight, later I discovered my co-worker slack'ed me the ssh connection string *two months ago*.

A week later I started working on haystack - a search engine for workplace apps.. It enables you to search slack, confluence, jira, teams, sharepoint, github, and email in one place.

It supports natural language queries so a query like: "how to connect to integ2 machine?" yields:

  ssh -i private.pem ubuntu@ec2-integration2.eu-est-1.compute.amazonaws.com
Privacy?

haystack is self hosted and stores user data locally, it has a completely client-side version, and a a self-hosted docker container version - only you have access to internal docs, I didn't want to deal with security compliance headaches caused from storing user data in the cloud + I don’t want your internal docs/messages.

Rolled it out to my co-workers a week ago and they thought it's a hit, so I'm planning on releasing it publicly on March 2023.

*Early access*

More technical details are available on github, code released on March 23’:

<https://github.com/haystackoss/haystack>

If you want to try it out before March 2023 - Available here <https://haystack.it>

1. No, if build fails hypertest will just discard the result. autosave is even prefered.

2. The first run and every subsequent one collects code coverage which is saved in an sqlite db. Every file change is compared to the code coverage.

Although this approach isnt perfect, The idea here is being fast. I always rerun the entire suite just before committing the code.

Well, I would say the biggest difference is while the watch mode you described runs all the tests for every change.

hypertest only runs the tests the were impacted by the changed code. Resulting is blazing fast performance.

I’d say it’s even fast than apples alt+tab animation most of the time.

Some background, I was diagnosed with ADHD when I was 5, moved in and out of schools through elementry/middleschool, ultimatly dropped out of highschool, I'm familiar with ADHD ;)

If you have any suggestions/feature-requests., or maybe have some ADHD experiences to share. this is for sure the place.

We love gta! A few key differences though: 1. We analyze the effect of code changed on code coverage, which means we only compare changed code to runtime information (code that actually ran). gta analyzes statically.

Let's assume you have a function:

  func myFunction(a int) {

      if(a > 10) {  

          func1()  

      } else if (a < 4) {  

          func2()  

      } else {  

          func3()

      }  
  }
let's assume you changed func3 only, or func2, but during the run of the test only func1 ran.

The test will be skipped because no change could of affected it's result. NOT in gta.

Thanks guys for all your feedback!

We took all notes to heart, the main problem we identified that currently (at this stage of the product cycle we don't yet support all edge cases)

And this hurts usability and value, will figure out a way to deliver this kind of tech in a way that is still valuable at this early stage :)